package com.zimmur.app.mocolink.dao;

import com.zimmur.app.mocolink.domain.model.AppUser;
import com.zimmur.app.mocolink.domain.model.AppUserExample;
import com.zimmur.app.mocolink.domain.param.AppUserParam;
import com.zimmur.app.mocolink.domain.vo.AppUserInfo;
import com.zimmur.app.mocolink.domain.vo.AppUserInfoForManage;

import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface AppUserMapper extends BaseMapper<AppUser> {
    int countByExample(AppUserExample example);

    int deleteByExample(AppUserExample example);


    List<AppUser> selectByExample(AppUserExample example);

    int updateByExampleSelective(@Param("record") AppUser record, @Param("example") AppUserExample example);

    int updateByExample(@Param("record") AppUser record, @Param("example") AppUserExample example);

    /**
     * 根据用户主键查询用户信息
     *@Description
     *@param userId
     *@return 
     *@author zcx
     *@Time 2017年10月13日 下午7:12:42
     */
    AppUserInfo selectInfoByUserId(Integer userId);
    /**
     * 后台查询用户信息
     *@Description
     *@param param
     *@return 
     *@author zcx
     *@Time 2017年10月23日 下午2:09:05
     */
    List<AppUserInfoForManage> selectInfoByParam(AppUserParam param);
    /**
     * 统计用户数量
     *@Description
     *@param param
     *@return 
     *@author zcx
     *@Time 2017年10月23日 下午2:09:17
     */
    int countInfoByParam(AppUserParam param);
    /**
     * 批量更新用户等级
     *@Description
     *@param userIdList
     *@param gradeId
     *@return 
     *@author zcx
     *@Time 2017年10月25日 下午5:07:44
     */
    int  batchUpdateGrade(@Param("userIds")List<Integer> userIdList,@Param("gradeId")Integer gradeId);
    /**
     * 仅更新余额
     *@Description
     *@param appUser
     *@return 
     *@author zcx
     *@Time 2017年10月26日 上午11:27:21
     */
    int updateMoney(AppUser appUser);
}